`:top
Ein `!Boolean`! [], benannt nach `F33f`_`[George Boole`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=George_Boole]`_`f, ist ein Element einer `F33f`_`[booleschen Algebra`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Boolesche_Algebra]`_`f.`:cite-ref-mathes22-1-0[`F5bf`_`[1`#cite-note-mathes22-1]`_`f] Eine Sonderform mit nur zwei Zuständen ist in der `F33f`_`[Digitaltechnik`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Digitaltechnik]`_`f die `!Schaltvariable`! (`F33f`_`[englisch`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Englische_Sprache]`_`f switching variable) bzw. bei der `F33f`_`[Programmierung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Programmierung]`_`f der boolesche `F33f`_`[Datentyp`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Datentyp]`_`f zur Darstellung der logischen `F33f`_`[Wahrheitswerte`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Wahrheitswert]`_`f `*wahr`* und `*falsch`*.
>>Contents
• `F0af`_`[Grundlagen: boolesche Mathematik und Schaltalgebra`#grundlagen-boolesche-mathematik-und-schaltalgebra]`_`f
• `F0af`_`[Digitaltechnik`#digitaltechnik]`_`f
• `F0af`_`[Programmierung`#programmierung]`_`f
• `F0af`_`[Weblinks`#weblinks]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f
-─
>>Grundlagen: boolesche Mathematik und Schaltalgebra
Eine `*boolesche Variable`* im Allgemeinen ist eine `F33f`_`[Variable`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Variable_(Logik)]`_`f, die nur endlich viele Werte oder Zustände annehmen kann: Mit seinem Werk `*The Mathematical Analysis of Logic`* von 1847 legte George Boole einen Grundstein für die `F33f`_`[formale Logik`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Formale_Logik]`_`f und die Rechentechnik. Die Menge dieser Werte bildet einen `F33f`_`[Zeichenvorrat`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Zeichenvorrat]`_`f.
Sonderform der booleschen Algebra ist die `F33f`_`[Schaltalgebra`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Schaltalgebra]`_`f, die `*Schaltvariable`* kann nur einen von wenigen Werten annehmen:
• Hier sind es meist zweiwertige (binäre) boolesche Variablen – in der Fachsprache versteht man unter `*boolescher Variable`* im Allgemeinen eine Schaltvariable im engeren Sinne. Dieses `F33f`_`[dichotome`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Dichotomie]`_`f Wertepaar wird je nach Anwendung u. a. als `B100`F9d9wahr/falsch`f`b bzw. `B100`F9d9true/false`f`b (`F33f`_`[Aussagenvariable`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Aussagenvariable]`_`f), oder `B100`F9d91/0`f`b (`F33f`_`[Binärzahl`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Binärzahl]`_`f) bezeichnet. In der `F33f`_`[elektronischen Datenverarbeitung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Elektronische_Datenverarbeitung]`_`f werden die beiden Werte mit `F33f`_`[Spannungs-`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Elektrische_Spannung]`_`f oder `F33f`_`[Strompegeln`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Elektrischer_Strom]`_`f dargestellt: `B100`F9d9HIGH, H`f`b oder `B100`F9d91`f`b bzw. `B100`F9d9LOW, L`f`b oder `B100`F9d90`f`b (Null) – als Schaltung entspricht das `B100`F9d9Ein/Aus`f`b, oder aber `B100`F9d9–1/1`f`b, was einem `F33f`_`[Flipflop`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Flipflop]`_`f entspricht.
• Daneben gibt es in der Anwendung häufig auch dreiwertige Schaltvariablen in der Form `B100`F9d9–1/0/1`f`b (mathematisch eine `F33f`_`[vorzeichenbehaftete`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Vorzeichen_(Zahl)]`_`f einstellige Binärzahl oder ein `F33f`_`[ternäres Zahlensystem`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Ternärsystem]`_`f `B100`F9d90/1/2`f`b), also `B100`F9d9HIGH/NULL/LOW`f`b, etwa in der `F33f`_`[Steuerungs-`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Steuerungstechnik]`_`f und `F33f`_`[Regelungstechnik`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Regelungstechnik]`_`f (`B100`F9d9VORWÄRTS/STOPP/RÜCKWÄRTS`f`b). Boolesche- bzw. Schaltalgebra ist aber prinzipiell über beliebigem Zeichenvorrat (Wertebereich) möglich.
>>Digitaltechnik
In der Digitaltechnik werden boolesche Werte durch unterschiedliche elektrische Spannungsbereiche (sog. `F33f`_`[Logikpegel`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Logikpegel]`_`f) realisiert. Die konkreten Spannungsgrenzen hängen von der verwendeten Technik ab (z. B. `F33f`_`[Transistor-Transistor-Logik`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Transistor-Transistor-Logik]`_`f oder `F33f`_`[CMOS`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Complementary_metal-oxide-semiconductor]`_`f).
>>Programmierung
Im Bereich der `F33f`_`[Softwareentwicklung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Softwareentwicklung]`_`f versteht man unter einem booleschen Ausdruck einen `F33f`_`[Ausdruck`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Ausdruck_(Programmierung)]`_`f, der nur die beiden Wahrheitswerte `F33f`_`[True und False`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Aussagenlogik]`_`f (englisch für `*wahr`* und `*falsch`*) annehmen kann. Solche Werte können miteinander `F33f`_`[logisch verknüpft`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Logischer_Operator]`_`f und Variablen eines passenden Typs zugewiesen werden. Sie finden bei `F33f`_`[Sprunganweisungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Sprunganweisung]`_`f Verwendung um den `F33f`_`[Kontrollfluss`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Kontrollfluss]`_`f zu ändern, in der Regel bei `F33f`_`[bedingten Anweisungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Bedingte_Anweisung_und_Verzweigung]`_`f oder `F33f`_`[Schleifen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Schleife_(Programmierung)]`_`f.
Viele `F33f`_`[Programmiersprachen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Programmiersprache]`_`f stellen dafür einen eigenen Datentyp zur Verfügung, etwa unter der Bezeichnung `*boolean`* (`F33f`_`[Algol 60`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Algol_60]`_`f, `F33f`_`[Pascal`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Pascal_(Programmiersprache)]`_`f, `F33f`_`[Java`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java_(Programmiersprache)]`_`f, `F33f`_`[Lua`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Lua]`_`f, `F33f`_`[Ada`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Ada_(Programmiersprache)]`_`f, `F33f`_`[Visual Basic Classic`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Visual_Basic_Classic]`_`f, `F33f`_`[BASIC`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=BASIC]`_`f) oder `*bool`* (`F33f`_`[Algol 68`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Algol_68]`_`f, `F33f`_`[C#`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C-Sharp]`_`f, `F33f`_`[C++`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C++]`_`f, `F33f`_`[PHP`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=PHP]`_`f, `F33f`_`[Python`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Python_(Programmiersprache)]`_`f) oder `*logical`* (`F33f`_`[Fortran`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Fortran]`_`f). Der Boolean ist ein `F33f`_`[elementarer Datentyp`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Datentyp]`_`f.`:cite-ref-mathes22-1-1[`F5bf`_`[1`#cite-note-mathes22-1]`_`f]
Zur Repräsentation eines booleschen Wertes genügt prinzipiell ein einzelnes `F33f`_`[Bit`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Bit]`_`f, um die beiden möglichen Zustände zu repräsentieren. Aus technischen Gründen wird jedoch in der Regel eine andere Repräsentation gewählt, meist abhängig von der `F33f`_`[Wortbreite`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Wortbreite]`_`f des verwendeten Systems, wobei bei C++ `F33f`_`[Vektoren`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Tupel_(Informatik)]`_`f für diesen Typ optimiert sind.`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f] Wird ein boolescher Wert mit einem Ganzzahltyp dargestellt, steht meist 0 für `*falsch`* und alles ungleich Null (häufig wird −1 oder 1 verwendet) für `*wahr`*. Anders in der `F33f`_`[Linux`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Linux]`_`f- bzw. `F33f`_`[Unix-Shell`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Unix-Shell]`_`f-Programmierung: Hier steht ein Wert größer Null für einen Fehler und im übertragenen Sinne für `*falsch`*, während Null für einen erfolgreichen Programmaufruf und so für `*wahr`* steht.
>>Weblinks
• J. Donald Monk: `*The Mathematics of Boolean Algebra.`* In: Edward N. Zalta (Hrsg.): `*`F33f`_`[Stanford Encyclopedia of Philosophy`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Stanford_Encyclopedia_of_Philosophy]`_`f`*.
>>Einzelnachweise
`:cite-note-mathes22-1`!1.`! `F0af`_`[↑`#cite-ref-mathes22-1-0]`_`f Markus A. Mathes, Jochen Seufert: Programmieren in C++ für Elektrotechniker und Mechatroniker. Springer Vieweg, Wiesbaden 2022, ISBN 978-3-658-38500-2, Kapitel 9.1: Elementare Datentypen – Boolesche Werte, S. 45 f., `F33f`_`[doi`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Digital_Object_Identifier]`_`f:10.1007/978-3-658-38501-9.
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f Richard Kaiser: C++ mit Visual Studio 2022 und Windows Forms-Anwendungen. Springer Vieweg, Berlin / Heidelberg 2022, ISBN 978-3-662-65256-5, Kapitel 12: Containerklassen der C++-Standardbibliothek, S. 659, `F33f`_`[doi`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Digital_Object_Identifier]`_`f:10.1007/978-3-662-65257-2: „Ein Vektor vector<bool> […] unterscheidet sich von Vektoren mit Elementen anderer Datentypen dadurch, dass möglichst viele (also 8) Werte in ein Byte gepackt werden.“
`c`F0af`_`[↑ Back to top`#top]`_`f`a